草庐IT

javascript - 变量内的 if 语句

全部标签

ruby - 你如何在 Ruby 中使用全局变量或常量值?

我有一个看起来像这样的程序:$offset=Point.new(100,200);defdraw(point)pointNew=$offset+point;drawAbsolute(point)enddraw(Point.new(3,4));$offset的使用似乎有点奇怪。在C中,如果我在任何函数之外定义了一些东西,它会自动成为一个全局变量。为什么在Ruby中它必须是$offset但不能是offset并且仍然是全局的?如果是offset,那么它是本地的?但在本地,因为它感觉非常全局化。有没有更好的方法来编写上面的代码?$offset的使用起初看起来有点难看。更新:我可以将这个偏移量放

ruby - ruby 中的静态变量

我刚刚了解了php中的静态变量。ruby中有类似的东西吗?例如,如果我们要创建一个Student类,对于我们创建的每个student对象,它的ID号应该自动递增。我认为将类变量创建为静态就可以了。 最佳答案 类变量在所有实例之间共享(这就是它们被称为类变量的原因),所以它们会做你想做的事。它们也是继承的,有时会导致相当困惑的行为,但我认为这不会成为问题。下面是一个类的示例,它使用类变量来计算已创建的实例数量:classFoo@@foos=0definitialize@@foos+=1enddefself.number_of_foos

ruby-on-rails - 我如何在 Jekyll 中链接 if 语句?

我在Jekyll中使用逻辑运算符,但它不起作用。第一页、第二页和第三页都使用相同的布局(多语言解决方案的一部分,效果很好但需要一些布局控制的逻辑循环以保持内容干燥。)代码如下:{%ifpage.type=="post"%}{%includepost.html%}{%elseifpage.class=="contact"%}{%includecontact.html%}{%else%}{{content}}{%endif%}如果我将其分解为一个else和一个ifelse设置,使用树中的任意两个,一切正常。但是,一旦我使用第三个条件,它就会中断。我只能使用Jekyll的两个条件吗?我可能会

ruby - 为什么 Ruby setter 需要 "self."类内的资格?

Rubysetter——无论是由(c)attr_accessor创建的或手动——似乎是唯一需要的方法self.在类本身中访问时的限定。这似乎让Ruby在语言世界中独树一帜:所有方法都需要self/this(像Perl,我认为是Javascript)没有方法需要self/this是(C#,Java)只有setter需要self/this(ruby?)最好的比较是C#与Ruby,因为这两种语言都支持在语法上像类实例变量一样工作的访问器方法:foo.x=y,y=foo.x.C#称它们为属性。这是一个简单的例子;Ruby和C#中的相同程序:classAdefqwerty;@q;end#manu

ruby-on-rails - 将本地文件的内容读入 Rails 中的变量

我只想从本地文件中获取所有内容并将其存储在变量中。怎么办?File.read(@icon.full_filename).each{|l|r+=l}只给了我一部分。在PHP中,我只使用了file_get_contents。 最佳答案 data=File.read("/path/to/file") 关于ruby-on-rails-将本地文件的内容读入Rails中的变量,我们在StackOverflow上找到一个类似的问题: https://stackoverflo

ruby-on-rails - 将 YAML 与变量一起使用

YAML文件中的变量是否可能?例如:theme:name:defaultcss_path:compiled/themes/$theme.namelayout_path:themes/$theme.name在这个例子中,如何在其他设置中使用theme:name:default?语法是什么? 最佳答案 我也有同样的问题,经过大量研究,看起来不可能。cgat的答案是正确的,但实际上您不能像那样连接引用。以下是您可以使用YAML中的“变量”(设置它们时正式称为“节点anchor”,稍后使用它们时正式称为“引用”)执行的操作:定义一个值并在以

ruby - Ruby 中用于显示提示、获取输入和分配给变量的代码?

我经常发现自己在做以下事情:print"Inputtext:"input=gets.strip是否有一种优雅的方式可以在一行中完成此操作?像这样的东西:puts"Inputtext:#{input=gets.strip}"问题是它在显示提示之前等待输入。有什么想法吗? 最佳答案 我认为采用像Marc-Andre建议的方式将是可行的方法,但是当您可以在任何脚本的顶部定义两行函数时,为什么要引入一大堆代码将要使用:defprompt(*args)print(*args)getsendname=prompt"Inputname:"

ruby - "which in ruby": Checking if program exists in $PATH from ruby

我的脚本严重依赖外部程序和脚本。我需要确定我需要调用的程序存在。手动地,我会在命令行中使用“which”来检查这一点。对于$PATH中的东西,是否有等同于File.exists?的东西?(是的,我想我可以解析%x[whichscriptINeedToRun]但这不是super优雅。谢谢!亚尼克更新:这是我保留的解决方案:defcommand?(command)system("which#{command}>/dev/null2>&1")end更新2:出现了一些新的答案-至少其中一些提供了更好的解决方案。更新3:ptoolsgem向File类添加了一个“which”方法。

ruby-on-rails - 如何检查一个数字是否包含在一个范围内(在一个语句中)?

我正在使用RubyonRails3.0.9,我想检查一个数字是否包含在一个范围内。也就是说,如果我有一个变量number=5我想查看1并在number时检索一个bool值值包含在该范围内。我可以这样做:number>=1&&number但我想在一个声明中做到这一点。我该怎么做? 最佳答案 (1..10).include?(number)是诀窍。顺便说一句:如果你想使用ActiveModel::Validations验证一个数字,你甚至可以这样做:validates_inclusion_of:number,:in=>1..10阅读he

ruby - _(下划线)变量在哪里以及如何指定?

大多数人都知道_在IRB中作为最后返回值的持有者的特殊含义,但这不是我在这里要问的。相反,我问的是_在普通旧Ruby代码中用作变量名时的情况。在这里它似乎有特殊的行为,类似于“无关变量”(àlaProlog)。以下是一些说明其独特行为的有用示例:lambda{|x,x|42}#SyntaxError:duplicatedargumentnamelambda{|_,_|42}.call(4,2)#=>42lambda{|_,_|42}.call(_,_)#NameError:undefinedlocalvariableormethod`_'lambda{|_|_+1}.call(42)#